package com.dingding.service.usermangerservice;

import java.util.List;

import com.dingding.bean.databean.request.ReqGetCurrentCity;
import com.dingding.bean.databean.request.ReqGetPushUerInfo;
import com.dingding.bean.databean.request.ReqGetTokenByRongCloud;
import com.dingding.bean.databean.request.ReqGetUserDetailById;
import com.dingding.bean.databean.request.ReqResetAddress;
import com.dingding.bean.databean.request.ReqScanInfo;
import com.dingding.bean.databean.request.ReqUpdateUserInfo;
import com.dingding.bean.databean.request.ReqUploadImage;
import com.dingding.bean.databean.response.DataResponse;
import com.dingding.bean.entity.Userdetail;

public interface IUserDetailService {

	/**
	 * @Title: uploadImage
	 * @Description:上传用户头像
	 * @author cheshaowei
	 * @throws
	 */
	public void uploadImage(ReqUploadImage reqUploadImage,
			DataResponse dataResponse);

	/**
	 * 
	 * @Title: resetAddress
	 * @Description: 地址设置
	 * @param reqResetAddress
	 * @param dataResponse
	 * @author Li Yi
	 * @return
	 * @throws
	 */
	public void resetAddress(ReqResetAddress reqResetAddress,
			DataResponse dataResponse);

	/**
	 * 
	 * @Title: scanUserInfo
	 * @Description: 查看对方用户信息
	 * @param reqScanInfo
	 * @param dataResponse
	 * @author Li Yi
	 * @return void
	 * @throws
	 */
	public void scanUserInfo(ReqScanInfo reqScanInfo, DataResponse dataResponse);

	/**
	 * @Title: updateUserInfo 
	 * @Description: 更新用户信息
	 * @param  
	 * @author lijinchao
	 * @return void
	 * @throws
	 */
	public void updateUserInfo(ReqUpdateUserInfo reqUpdateUserInfo, DataResponse dataResponse);
	
	/**
	 * @Title: getCurrentCity 
	 * @Description: 更新用户当前所在城市
	 * @param reqGetCurrentCity
	 * @param dataResponse 
	 * @author lijinchao
	 * @return void
	 * @throws
	 */
	public void getCurrentCity(ReqGetCurrentCity reqGetCurrentCity, DataResponse dataResponse);
	
	/**
	 * @Title: getPushUserInfo 
	 * @Description: 获取对方用户信息
	 * @param reqGetPushUerInfo
	 * @param dataResponse 
	 * @author lijinchao
	 * @return void
	 * @throws
	 */
	public void getPushUserInfo(ReqGetPushUerInfo reqGetPushUerInfo, DataResponse dataResponse);
	
	/**
	 * @Title: getAllUserDetail 
	 * @Description: 获取全部用户详情(数据迁移专用)
	 * @author yhq
	 * @return void
	 * @throws
	 */
	public List<Userdetail> getAllUserDetail();
	
	/**
	 * @Title: deleteAllUserDetail 
	 * @Description: 删除全部用户详情(数据迁移专用)
	 * @author yhq
	 * @return void
	 * @throws
	 */
	public boolean deleteAllUserDetail();
	
	/**
	 * @Title: updateAllUserDetail 
	 * @Description: 修改全部用户详情的Id(数据迁移专用)
	 * @author yhq
	 * @return void
	 * @throws
	 */
	public boolean updateAllUserDetail(List<Userdetail> userdetails);
	
	/**
	 * @Title: getUserDetail 
	 * @Description: 根据用户id获取用户详情
	 * @param userId 用户id
	 * @param dataResponse 响应数据
	 * @author lijinchao
	 * @return Userdetail 用户详情对象
	 * @throws
	 */
	public Userdetail getUserDetail(String userId ,DataResponse dataResponse);
	

	/**
	 * @Title: getTokenByRongCloud 
	 * @Description: 获取Token 
	 * @param reqGetTokenByRongCloud 客户端获取Token请求数据
	 * @param dataResponse 响应数据
	 * @param @return    设定文件 
	 * @author YHQ 
	 * @return void    返回类型
	 */
	public void getTokenByRongCloud(ReqGetTokenByRongCloud reqGetTokenByRongCloud,DataResponse dataResponse);
	
	/**
	 * @Title: getUserDetailById 
	 * @Description: 根据用户Id获取用户详情
	 * @param reqGetUserDetailById 请求参数Bean
	 * @param dataResponse	响应Bean
	 * @author YHQ 
	 * @return void    返回类型
	 */
	public void getUserDetailById(ReqGetUserDetailById reqGetUserDetailById ,DataResponse dataResponse);
	
	/**
	 * @Title: getUserBaseInfoById 
	 * @Description: 获取用户基本信息
	 * @param reqGetUserDetailById 请求参数Bean
	 * @param dataResponse	响应Bean
	 * @author YHQ 
	 * @return void    返回类型
	 */
	public void getUserBaseInfoById(ReqGetUserDetailById reqGetUserDetailById ,DataResponse dataResponse);
	
	
}
